/**
 * @authorBy wuzhijie
 * @time 2024年8月2日 13:14:50
 * @description 发起小程序订阅消息推送模板
 * @param {tmplIds}  模板IDs Array格式,例如['id1','id2']
 * @param {data}  定义传值  Int格式,例如订单ID,需求ID等（方便推送）
 */
 export const miniprogramSubscribe = (tmplIds, data) => {
  uni.getSetting({
    withSubscriptions: true, //  这里设置为true,下面才会返回mainSwitch
    success: function (res) {
      console.log('getSettingRes==========>', res);
      // 调起授权界面弹窗
      if (res.subscriptionsSetting.mainSwitch) {
        // 用户打开了订阅消息总开关
        if (res.subscriptionsSetting.itemSettings != null) {
          // 用户同意总是保持是否推送消息的选择, 这里表示以后不会再拉起推送消息的授权
          uni.requestSubscribeMessage({
            // 调起消息订阅界面
            tmplIds: tmplIds,
            success(result) {
              console.log('调用接口----记录小程序订阅消息入库', result);
              for (let i = 0; i < tmplIds.length; i++) {
                if (result[tmplIds[i]] === 'accept') {
                  var header = 'application/json';
                  var params = {
                    tmplId: tmplIds[i]
                  };
                  if (uni.getStorageSync('memberInfo')) {
                    var memberInfo = uni.getStorageSync('memberInfo');
                    params.openid = memberInfo.openidWA;
                  }
                  if (data.orderId) {
                    params.orderId = data.orderId;
                  } else if (data.demandId) {
                    params.demandId = data.demandId;
                  }
                  javarequest(url.saveTemplate, params, 'POST', (f, res) => {}, header);
                }
              }
            },
            fail(er) {
              console.log('订阅消息 失败 ');
              console.log(er);
            }
          });
        } else {
          console.log('点击 ’总是保持以上选择，不再询问‘  按钮==>');
          // 当用户没有点击 ’总是保持以上选择，不再询问‘  按钮。那每次执到这都会拉起授权弹窗
          uni. ({
            // 调起消息订阅界面
            tmplIds: tmplIds,
            success(result) {
              for (let i = 0; i < tmplIds.length; i++) {
                if (result[tmplIds[i]] === 'accept') {
                  var header = 'application/json';
                  var params = {
                    tmplId: tmplIds[i]
                  };
                  if (uni.getStorageSync('memberInfo')) {
                    var memberInfo = uni.getStorageSync('memberInfo');
                    params.openid = memberInfo.openidWA;
                  }
                  if (data.orderId) {
                    params.orderId = data.orderId;
                  } else if (data.demandId) {
                    params.demandId = data.demandId;
                  }
                  javarequest(url.saveTemplate, params, 'POST', (f, res) => {}, header);
                }
              }
              console.log('调用接口----记录小程序订阅消息入库,通过允许的是acceptTmplIds', result);
            },
            fail(er) {
              console.log('订阅消息 失败 ');
              console.log(er);
            }
          });
        }
      } else {
        console.log('订阅消息未开启');
      }
    },
    fail: function (error) {
      console.log('getSettingError====>', error);
    }
  });
};